package config

import (
	"fmt"
	"github.com/spf13/viper"
)

var Cfg Config

func init() {
	v := viper.New()
	// 设置配置文件名（不带扩展名）
	v.SetConfigName("config")
	// 设置配置文件类型
	v.SetConfigType("yaml")
	// 设置配置文件所在的路径
	v.AddConfigPath(".")

	// 尝试读取配置文件
	if err := v.ReadInConfig(); err != nil {
		panic(fmt.Errorf("读取配置文件失败: %w", err))
	}

	// 反序列化到结构体
	if err := v.Unmarshal(&Cfg); err != nil {
		panic(fmt.Errorf("解析配置文件失败: %w", err))
	}
}

type Config struct {
	Iec struct {
		Host     string `json:"host" yaml:"host"`
		Ports    []int  `json:"ports" yaml:"ports"`
		Interval int    `json:"interval" yaml:"interval"`
	} `json:"iec" yaml:"iec"`
	Log struct {
		Path string `json:"path" yaml:"path"`
	} `json:"log" yaml:"log"`
}
